package com.ajie.utils;


import lombok.extern.slf4j.Slf4j;

import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

/**
 * md5加密工具类
 * MD5加密是单向加密 不可逆==》不能解密
 * BCryptPasswordEncoder 可逆的，可解密
 */
@Slf4j
public class MD5Utils {

    public static String md5(String password){
        log.info("该文件名是：MD5Utils,该方法是：md5");
        if (StringUtil.isNotEmpty(password)){
            byte[] bytes = null;
            try {
                bytes = MessageDigest.getInstance("md5").digest(password.getBytes());
            } catch (NoSuchAlgorithmException e) {
                log.error("没有md5这个加密算法");
            }
            //由MD5加密算法得到的字节数组
            String code = new BigInteger(1, bytes).toString(16);
            //保证MD5加密后是32位
            for (int i = 0; i < 32 - code.length(); i++) {
                code = "0" + code;
            }
            return code.toString();
        }else {
            return null;
        }
    }


}
